home *** CD-ROM | disk | FTP | other *** search
/ Just Call Me Internet / Just Call Me Internet.iso / prog / mint / netlib / include / mintsock.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-12-27  |  2.2 KB  |  157 lines

  1. /*
  2.  *    Definitions for the MiNT specific ioctl() device driver interface
  3.  *    to the socket network access protocol.
  4.  *
  5.  *    09/24/93, kay roemer.
  6.  */
  7.  
  8. #ifndef _MINTSOCK_H
  9. #define _MINTSOCK_H
  10.  
  11. /* perform a socket system call, via ioctl() */
  12. #define SOCKETCALL    (('S' << 8) | 100)
  13.  
  14. /* socket call command names, passed in the `cmd' field of *_cmd structs */
  15. enum so_cmd {
  16.     SOCKET_CMD = 0,
  17.     SOCKETPAIR_CMD,
  18.     BIND_CMD,
  19.     LISTEN_CMD,
  20.     ACCEPT_CMD,
  21.     CONNECT_CMD,
  22.     GETSOCKNAME_CMD,
  23.     GETPEERNAME_CMD,
  24.     SEND_CMD,
  25.     SENDTO_CMD,
  26.     RECV_CMD,
  27.     RECVFROM_CMD,
  28.     SETSOCKOPT_CMD,
  29.     GETSOCKOPT_CMD,
  30.     SHUTDOWN_CMD,
  31.     SENDMSG_CMD,
  32.     RECVMSG_CMD
  33. };
  34.  
  35. /* used to extract the `cmd' field from the *_cmd structs */
  36. struct generic_cmd {
  37.     short    cmd;
  38.     char    data[10];
  39. };
  40.  
  41. /* structures passed to the SOCKETCALL ioctl() as an argument */
  42. struct socket_cmd {
  43.     short    cmd;
  44.     short    domain;
  45.     short    type;
  46.     short    protocol;
  47. };
  48.  
  49. struct socketpair_cmd {
  50.     short    cmd;
  51.     short    domain;
  52.     short    type;
  53.     short    protocol;
  54. };
  55.  
  56. struct bind_cmd {
  57.     short    cmd;
  58.     void    *addr;
  59.     short    addrlen;
  60. };
  61.         
  62. struct listen_cmd {
  63.     short    cmd;
  64.     short    backlog;
  65. };
  66.  
  67. struct accept_cmd {
  68.     short    cmd;
  69.     void    *addr;
  70.     short    *addrlen;
  71. };
  72.  
  73. struct connect_cmd {
  74.     short    cmd;
  75.     void    *addr;
  76.     short    addrlen;
  77. };
  78.  
  79. struct getsockname_cmd {
  80.     short    cmd;
  81.     void    *addr;
  82.     short    *addrlen;
  83. };
  84.  
  85. struct getpeername_cmd {
  86.     short    cmd;
  87.     void    *addr;
  88.     short    *addrlen;
  89. };
  90.  
  91. struct send_cmd {
  92.     short    cmd;
  93.     char    *buf;
  94.     long    buflen;
  95.     short    flags;
  96. };
  97.  
  98. struct sendto_cmd {
  99.     short    cmd;
  100.     char    *buf;
  101.     long    buflen;
  102.     short    flags;
  103.     void    *addr;
  104.     short    addrlen;
  105. };
  106.  
  107. struct recv_cmd {
  108.     short    cmd;
  109.     char    *buf;
  110.     long    buflen;    
  111.     short    flags;
  112. };
  113.  
  114. struct recvfrom_cmd {
  115.     short    cmd;
  116.     char    *buf;
  117.     long    buflen;
  118.     short    flags;
  119.     void    *addr;
  120.     short    *addrlen;
  121. };
  122.  
  123. struct setsockopt_cmd {
  124.     short    cmd;
  125.     short    level;
  126.     short    optname;
  127.     void    *optval;
  128.     long    optlen;
  129. };
  130.  
  131. struct getsockopt_cmd {
  132.     short    cmd;
  133.     short    level;
  134.     short    optname;
  135.     void    *optval;
  136.     long    *optlen;
  137. };
  138.  
  139. struct shutdown_cmd {
  140.     short    cmd;
  141.     short    how;
  142. };
  143.  
  144. struct sendmsg_cmd {
  145.     short    cmd;
  146.     void    *msg;
  147.     short    flags;
  148. };
  149.  
  150. struct recvmsg_cmd {
  151.     short    cmd;
  152.     void    *msg;
  153.     short    flags;
  154. };
  155.  
  156. #endif /* _MINTSOCK_H */
  157.